#include <iostream>
#include <memory>
using namespace std;
template<typename T>
bool isVoid(T) {
    return std::is_void<T>::value;
}
class A {
    int a_ = 0;
public:
    explicit A(int a) : a_(a) {}
};
shared_ptr<A> fun() {

    return shared_ptr<A>(new A(1));
}

int main() {
    A a{1};
    return 0;
}